Data processing systems typically include various hardware elements that have microcode (also referred to as “firmware”) associated therewith. One example of such an element is a storage adapter that provides the capability to attach a data storage subsystem such as a Redundant Array of Independent Disks (RAID) array to a data processing system. In addition to various hardware components including a computer processor and memory, the adapter is provided with microcode in memory to control the operation of the adapter to transfer data between the data processing system and storage subsystem.
In many modern systems of this type, the microcode is stored in programmable memory and it is thus possible to upgrade the microcode from the level that was originally provided with the system. This allows problems in the code to be fixed, and also allows extra functionality to be added to the system, without changing the hardware.
Various other types of operations can also require a large amount of data to be transferred in a relatively short time period.